#ifndef __DRV_RTC_H_
#define __DRV_RTC_H_

#ifdef __cplusplus
extern "C"
{
#endif

#include "system.h"


typedef struct
{
    uint16_t year;       // 2000-2099
    uint8_t month;      // 1-12
    uint8_t date;       // 1-31
    uint8_t day;        // 0-6, Sunday-Saturday
    uint8_t hour;       // 0-23
    uint8_t min;        // 0-59
    uint8_t sec;        // 0-59
    uint16_t yday;      // day of year 0-365
} _drv_rtc_time_t;


/* export func */

void drv_rtc_init(void);
void drv_rtc_lock(void);
void drv_rtc_unlock(void);

void drv_rtc_get(_drv_rtc_time_t *obj);
void drv_rtc_set(_drv_rtc_time_t *obj);
uint8_t drv_rtc_check(_drv_rtc_time_t *obj);
uint8_t drv_rtc_get_time_form_unix(_drv_rtc_time_t *obj, uint32_t unix);
uint8_t drv_rtc_get_unix_form_time(_drv_rtc_time_t *obj, uint32_t *unix);


#ifdef __cplusplus
}
#endif

#endif // __DRV_RTC_H_
